package com.kerrykidz.authority.dao.mapper;


import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.authority.dao.model.GblSecBranEntity;
import com.kerrykidz.authority.dao.model.SecObj2usrEntity;
import com.kerrykidz.authority.dao.model.SecUsrEntity;
import com.rdp.framework.core.dao.mapper.MyBatisSuperMapper;
import com.rdp.framework.exception.RDPException;

/**
 * 
 * @ClassName: AuSecUsrEntityMapper 
 * @description: 用户操作
 * @author: wolf-yansl 
 * @date: 2014年9月18日 下午5:38:51 
 * @version: V1.0
 *
 */
@Repository
public interface AuSecUsrEntityMapper  extends MyBatisSuperMapper<SecUsrEntity> {
	
	/**
	 * 对象条件查询
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月19日
	 */
	public SecUsrEntity getByUser(SecUsrEntity entity)throws RDPException;
	/***
	 *  模糊查询用户
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public List<SecUsrEntity> getLikeUser(SecUsrEntity entity)throws RDPException;
	
	/**
	 * 查询 指定用户  
	 * @param userId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public SecUsrEntity getByUserId(@Param("pkUsrId")String pkUsrId)throws RDPException;
	
	/***
	 * 获取所有分店 信息
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public List<GblSecBranEntity> getGblSecBranAll()throws RDPException;
	
	/**
	 * 保存用户
	 * @param entity
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void  insertUser(SecUsrEntity entity)throws RDPException;
	/**
	 * 修改用户
	 * @param entity
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void  updateUser(SecUsrEntity entity)throws RDPException;
	
	/***
	 * 删除用户
	 * @param entity
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void  deleteUser(SecUsrEntity entity)throws RDPException;
	
	/**
	 *  保存用户与角色关联
	 * @param roleList
	 * @param userId
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void  insertUserRole(@Param("roleList")List<String> roleList ,@Param("userId") String userId)throws RDPException;
	
	/**
	 *  删除关联角色
	 * @param userId
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void  deleteUserRole(@Param("userId") String userId)throws RDPException;
	
	/**
	 * 获取关联用户的所有角色ID
	 * @param userId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public List<String>  getByUserIdRoleAll(@Param("userId") String userId)throws RDPException;
	
	/**
	 * 增加用户权限对象
	 * @param roleList
	 * @param userId
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void insertUserObj(@Param("objList")List<SecObj2usrEntity> objList ,@Param("userId") String userId)throws RDPException;
	/**
	 * 删除用户权限
	 * @param userId
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public void deleteUserObj(@Param("userId") String userId)throws RDPException;
	/**
	 * 获取用户的所有权限
	 * @param userId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月18日
	 */
	public List<SecObj2usrEntity> getByUserIdObjAll(@Param("userId") String userId)throws RDPException;
}